package com.san.system.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.stereotype.Service;

import com.san.base.domain.Tree;
import com.san.base.service.BaseService;
import com.san.system.domain.DeptDO;
import com.san.system.domain.UserDO;
import com.san.system.vo.UserVO;

@Service
public interface UserService extends BaseService{

	/**
	 * 按条件查询用户列表
	 * @param map
	 * @return
	 */
	List<UserDO> list(Map<String, Object> map);
	
	/**
	 * 按条件查询用户数量
	 * @param map
	 * @return
	 */
	int count(Map<String, Object> map);

	/**
	 * 检查用户是否存在
	 * @param map
	 * @return
	 */
	boolean exit(Map<String, Object> params);
	
	/**
	 * 用户权限列表
	 * @param userId
	 * @return
	 */
	Set<String> listRoles(Long userId);
	
	/**
	 * 修改密码
	 * @param userVO
	 * @param userDO
	 * @return
	 * @throws Exception
	 */
	int resetPwd(UserVO userVO,UserDO userDO) throws Exception;
	
	/**
	 * 重置密码
	 * @param userVO
	 * @return
	 * @throws Exception
	 */
	int adminResetPwd(UserVO userVO) throws Exception;
	
	/**
	 * 部门树
	 * @return
	 */
	Tree<DeptDO> getTree();

	/**
	 * 更新个人信息
	 * @param userDO
	 * @return
	 */
	int updatePersonal(UserDO userDO);
}
